iOS 逆向<3.1>:使用dumpdecrypted砸壳

在上篇iOS 逆向<3>:砸壳我们介绍了,使用Clutch进行砸壳,这篇介绍另一个使用dumpdecrypted

一、编译 dumpdecrypted

dumpdecrypted 源码地址

我们要使用的是生成的动态库dumpdecrypted.dylib,要想得到dumpdecrypted.dylib这个动态库,只需要从github上下载代码,然后进行编译,生成dumpdecrypted.dylib即可。下方就是使用make命令对dumpdecrypted的源码进行编译。

make编译完成后,文件夹中就会多一个dumpdecrypted.dylib动态库,该动态库就是稍后我们砸壳使用的工具。

二、dumpecrypted.dylib 签名

先找到已经在电脑上面安装的苹果开发者证书, 操作如下:

列出可签名证书, 找到 mac 上面已经安装的证书

security find-identity -v -p codesigning

为 dumpecrypted.dylib 签名, 命令如下:

codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib

其中, “iPhone Developer: xxx xxxx (xxxxxxxxxx)” 为你自己本机安装的开发者证书名称.

三 查找目标APP的Main Bundle路径,Sandbox路径

我们需要找到目标APP的Main Bundle路径,Sandbox路径。那么怎么在终端里查找呢。

首先要通过通过ssh连接手机,执行

ssh root@10.105.12.136

收入密码alpine

然后我们有两种方式查找目标APP的两个路径。

3.1: 借助第三方工具

可以安装https://github.com/CoderMJLee/MJAppTools

安装文档安装MJAppTools后,在通过ssh链接手机后执行

MJAppTools -l

就会列出手机所安装的所有的App

可以看到
Main Bundle路径为:/private/var/containers/Bundle/Application/3E376AA9-1F0E-4939-8D2D-933757835643/SOHUVideo.app

Sandbox路径为:/private/var/mobile/Containers/Data/Application/06D1A964-71D0-4849-B1F6-81126FA187FB

3.2: 原始方式

这种方式,必须先要在手机上打开目标App,

终端执行,过滤出来搜狐APP

ps -e | grep -i so

我们找到了Main Bundle路径为:/var/containers/Bundle/Application/3E376AA9-1F0E-4939-8D2D-933757835643/SOHUVideo.app/SOHUVideo

下面查找 Documents 目录,需要通过cycript了。

终端执行:

cycript -p SOHUVideo

其中,cycript -p XX后面跟的就是,上面看到的XX.app的名字。

然后执行cycript脚本:

[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

找到Sandbox路径为:/var/mobile/Containers/Data/Application/06D1A964-71D0-4849-B1F6-81126FA187FB/Documents/

四、砸壳

4.1:拷贝 dumpdecrypted.dylib 到目标APP 沙盒的Documents路径

拷贝 dumpdecrypted.dylib 到目标APP 沙盒的Documents路径下:

可以用scp指令

scp ~/dumpdecrypted.dylib root@10.105.12.136:/private/var/mobile/Containers/Data/Application/A35753BD-A755-47B4-9166-EEAF50CC7F1B/Documents/

其中10.105.12.136为手机的ip地址,需要和电脑在同一个局域网中。
/private/var/mobile/Containers/Data/Application/A35753BD-A755-47B4-9166-EEAF50CC7F1B/Documents/为搜狐视频APP的Sandbox沙盒路径

也可以用iFunBox,找到目标路径直接拖拽。

4.1:开始砸

cd到Document目录下

cd /private/var/mobile/Containers/Data/Application/A35753BD-A755-47B4-9166-EEAF50CC7F1B/Documents/

执行

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /private/var/containers/Bundle/Application/3E376AA9-1F0E-4939-8D2D-933757835643/SOHUVideo.app/SOHUVideo

这个指令有点长,总结一下这个指令是在目标App的Sandbox路径的Documents目标下,执行: DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib (Main Bundle路径)

然后在Document路径下,会生成SOHUVideo.decrypted文件

使用 iFunBox 或者 scp 命令将 SOHUVideo.decrypted 文件导出,即可进行后续的分析。

您的支持将鼓励我继续创作!